<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of articulos
 *
 * @author emontoro
 */
class preliminar extends CI_Controller {

    function index() {
        // Cargo el helper de url, con funciones para trabajo con URL del sitio
        $this->load->helper('url');

        $datos = array(
                    'publickey' => $this->config->item('captcha_publickey')
                );

        $this->load->view('preregistro/preliminar', $datos );
    }

    function insertar_email() {
        // Cargo el helper de url, con funciones para trabajo con URL del sitio
        // $this->load->helper('url');

        $email = $this->input->post('email');
        $cod_postal = $this->input->post('cod_postal');

        // Se comprueban si ya existe en alguna tabla

        $error = 0; // Se inicializa el erro a 0. Indica que es correcto
        $this->load->model('registro_preliminar_emails');

        // Se comprueban si existe en Confirmados
        if ($error == 0) {
            $num_registros = $this->registro_preliminar_emails->comprobar_en_confirmados($email);
            if ( $num_registros > 0) {

                $error = 1;
            }
        }

        // Se comprueban si existe en Pendientes
        if ($error == 0) {
            $num_registros = $this->registro_preliminar_emails->comprobar_en_pendientes($email);
            if ( $num_registros > 0) {

                $error = 2;
            }
        }

        // Se comprueban si existe en No Molestar
        if ($error == 0) {
            $num_registros = $this->registro_preliminar_emails->comprobar_en_no_molestar($email);
            if ( $num_registros > 0) {

                $error = 3;
            }
        }

        // Se comprueban si existe en Caducados
        if ($error == 0) {
            $num_registros = $this->registro_preliminar_emails->comprobar_en_caducados($email);
            if ( $num_registros > 0) {

                $error = 3;
            }
        }


        // Si no existe se da de alta
        if ($error == 0) {

            $fecha_hora_peticion = time();
            $fecha_peticion = date('Ymd', $fecha_hora_peticion);
            $hora_peticion = date('His', $fecha_hora_peticion);


            // Se genera el código de activación de la cuenta
            $this->load->library('encrypt');

            $cadena_base = $email . $fecha_peticion . $hora_peticion;
            $cadena_activacion = $cadena_base . 'ACTIVA'; // Activar
            $cadena_eliminar = $cadena_base . 'ELIMIN'; // Elimnar cualquier registro de eBarrio
            $cadena_evitar = $cadena_base . 'EVITAR'; // Elimnar cualquier registro de eBarrio

            $cod_activacion = $this->encrypt->encode($cadena_activacion);
            $cod_eliminar = $this->encrypt->encode($cadena_eliminar);
            $cod_evitar = $this->encrypt->encode($cadena_evitar);

            // Se inserta en la BD como pendiente de confirmacion
            $this->load->model('registro_preliminar_emails');
            $this->registro_preliminar_emails->insertar_email_pendiente($email, $cod_postal, $fecha_hora_peticion);


            // Si se da de alta correctamente, se envia email

            //Se crear el cuerpo del mail
            $datos = array(
                    'cod_activacion' => substr(strtr(base64_encode($cod_activacion), '+/=', '-_,'), 0, -1),
                    'cod_eliminacion' => substr(strtr(base64_encode($cod_eliminar), '+/=', '-_,'), 0, -1),
                    'cod_evitar' => substr(strtr(base64_encode($cod_evitar), '+/=', '-_,'), 0, -1)
                );

            $cuerpo = $this->load->view('preregistro/cabecera.html', '', true);
//            $cuerpo .= $this->load->view('preregistro/cuerpo_1', '', true);
            $cuerpo .= $this->load->view('preregistro/cuerpo_activar.php', $datos, true);
//            $cuerpo .= $this->load->view('preregistro/cuerpo_evitar', $cod_evitar, true);
//            $cuerpo .= $this->load->view('preregistro/cuerpo_eliminar', $cod_eliminar, true);
//            $cuerpo .= $this->load->view('preregistro/pie', '', true);


 // Se comenta el envio de email para poder hacer pruebas
/*            $this->load->library('email');

            $this->email->clear();
            $this->email->from('preregistro@ebarrio.es', 'Pre-Registro');
            $this->email->to($email);
            $this->email->subject('PreRegistro a eBarrio');
            $this->email->message($cuerpo);
            $this->email->send();
*/
            //echo $this->email->print_debugger();
        }

        // Se notifica los diferentes errores o caso de existo
        // 		1- Ya existe el mail como confirmado
        //		2- El mail est� pendiente de confirmar
        //		3- El mail est� como no molestar
        //		4- El mail ya ha caducado en m�s de 5 ocasiones y no se le permite volverlo a intentar
        //		5- Ha ocurrido un problema en la insercion
        //		6- Ha ocurrido un problema al enviar el correo de confirmaci�n


        echo $error;

    }

    function validar($recibido) {

        $this->load->model('registro_preliminar_emails');
        $this->load->library('encrypt');

        // Se desencripta la clave recibida
        $cadena = $this->encrypt->decode(base64_decode(strtr($recibido, '-_,', '+/=')));

        // Se separan los diferentes datos
        $accion = substr($cadena, -6);
        $hora_peticion = substr($cadena, -12, -6);
        $fecha_peticion = substr($cadena, -20, -12);
        $email= substr($cadena , 0, -20);

//echo $email;

        // En función de la acción
        switch ($accion) {
            case "ACTIVA":
                $error = $this->registro_preliminar_emails->insertar_en_confirmados($email);
                echo('<br>');
                echo('Resultado de la operacion ACTIVAR' . $error);
                break;
            case "ELIMIN":
                $error = $this->registro_preliminar_emails->eliminar_datos($email);
                echo('<br>');
                echo('Resultado de la operacion ELIMINAR' . $error);
                break;
            case "EVITAR":
                $error = $this->registro_preliminar_emails->insertar_en_evitar($email);
                echo('<br>');
                echo('Resultado de la operacion EVITAR' . $error);
                break;
        }
    }


    function validar_captcha() {


        $recaptcha_challenge_field = $this->input->post('recaptcha_challenge_field');
        $recaptcha_response_field = $this->input->post('recaptcha_response_field');

        require_once("/recaptcha/recaptchalib.php");

        $privatekey = $this->config->item('captcha_privatekey');

        $resp = recaptcha_check_answer ($privatekey,
                                      $_SERVER["REMOTE_ADDR"],
                                      $recaptcha_challenge_field,
                                      $recaptcha_response_field);

        $error = $resp->error;
        
        if (!$resp->is_valid) {

                echo $resp->error;
        } else {
        	echo "success";
        }

    }


}


?>
